//
//  CZEmoticonCell.swift
//  01.表情键盘
//
//  Created by Apple on 15/12/27.
//  Copyright © 2015年 Apple. All rights reserved.
//

import UIKit

class CZEmoticonCell: UICollectionViewCell {
    
    // MARK: - 属性
    /// 表情模型.
    var emoticon: CZEmociton? {
        didSet {
            // 当控制器给cell赋值模型后,来根据模型显示表情数据
//            print("cell 的模型: \(emoticon)")
            if let pngPath = emoticon?.pngPath {
                // 有图片,设置图片,不能直接使用png,需要拼接完整地路径
                emoticonButton.setImage(UIImage(contentsOfFile: pngPath), forState: UIControlState.Normal)
            } else {
                // 没有图片,需要清空图片,防止cell复用
                emoticonButton.setImage(nil, forState: UIControlState.Normal)
            }
            
            // 设置emoji表情
//            if let emoji = emoticon?.emoji {
//                // 有emoji表情
//                emoticonButton.setTitle(emoji, forState: UIControlState.Normal)
//            } else {
//                emoticonButton.setTitle(nil, forState: UIControlState.Normal)
//            }
            emoticonButton.setTitle(emoticon?.emoji, forState: UIControlState.Normal)
            
            // 显示删除按钮
            if emoticon!.removeEmoticon {
                emoticonButton.setImage(UIImage(named: "compose_emotion_delete_highlighted"), forState: UIControlState.Normal)
            }
        }
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    override init(frame: CGRect) {
        super.init(frame: frame)
        
        // 准备UI
        prepareUI()
    }
    
    /// 准备UI
    private func prepareUI() {
        // 添加子控件
        contentView.addSubview(emoticonButton)
        
        // 设置尺寸
        // rect: 原始的frame
        // dx: x方向偏移
        // dy: y方向偏移
        // 千万不要使用frame去偏移
        emoticonButton.frame = CGRectInset(bounds, 3, 3)
    }
    
    // MARK: - 懒加载
    /// 按钮,显示图片和emoji表情
    private lazy var emoticonButton: UIButton = {
        let button = UIButton()
        
        // 设置字体大小
        button.titleLabel?.font = UIFont.systemFontOfSize(32)
        
        // 禁止和用户交互
        button.userInteractionEnabled = false
        
        return button
    }()
}
